package com.haojiang.mh.remote.ui.frag

import android.os.Handler
import android.os.Looper
import android.os.Message
import android.text.TextUtils
import android.view.View
import androidx.recyclerview.widget.LinearLayoutManager
import cn.com.heaton.blelibrary.ble.utils.ByteUtils
import com.haojiang.mh.R
import com.haojiang.mh.remote.adapter.MassageFragAdapter
import com.haojiang.mh.remote.base.BaseFrag
import com.haojiang.mh.remote.enums.EArea
import com.haojiang.mh.remote.event.FunChangeEvent
import com.haojiang.mh.remote.ui.dialog.BleSingleDialogFrag
import com.haojiang.mh.remote.utils.BleUtil
import com.haojiang.mh.remote.utils.MenuUtil.massageMap
import com.haojiang.mh.remote.widget.custom.SeekBarColorPicker
import com.haojiang.mh.remote.widget.seekbar.SignSeekBar
import com.lx.permission.IPermissionCallback
import kotlinx.android.synthetic.main.frag_massage.*
import org.greenrobot.eventbus.EventBus
import org.greenrobot.eventbus.Subscribe
import org.greenrobot.eventbus.ThreadMode

class MassageFrag : BaseFrag() {

    //    val massageMap: MutableMap<Int, MutableList<Cmd>> = mutableMapOf()
    val massageFragAdapter by lazy { MassageFragAdapter() }
    private val mIPermissionCallback = IPermissionCallback {
        BleSingleDialogFrag.show(activity!!)
    }

    override fun onLayoutId(): Int {
        return R.layout.frag_massage
    }

    override fun initView() {
//        LogUtil.e("按摩器视图被加载")
        if(!EventBus.getDefault().isRegistered(this)) {
            EventBus.getDefault().register(this)
        }
//        return View.inflate(context, R.layout.frag_massage, null)
    }

    override fun initListener() {
//        LogUtil.e("initListener按摩器")
        rvMassage.layoutManager = LinearLayoutManager(context)
        rvMassage.adapter = massageFragAdapter

//        if (massageMap.size > 0) {
//            massageFragAdapter.setData(massageMap)
//        }

//        showFunction()

    }


    override fun initData() {
        showFrag()
//        showFunction()
//        LogUtil.e("initData按摩器")
    }

    override fun initDestroy() {
        EventBus.getDefault().unregister(this)
    }

    @Subscribe(threadMode = ThreadMode.MAIN)
    fun onFunctionEvent(event: FunChangeEvent) {
        when (event.fragCode) {
            EArea.MASSAGE.key -> {
//                ThreadUtils.ui {
                showFrag()
//                }
            }
        }
//        ThreadUtils.asyn {
//            if (massageMap.size > 0) {
//                LogUtil.e("按摩器进来了")
//                massageFragAdapter.setData(massageMap)
//                LogUtil.e("按摩器出去了")
//            }
//        }
    }

    @Synchronized
    private fun showFrag() {
        if (massageMap.size > 0) {
//            LogUtil.e("按摩器进来了")
            massageFragAdapter.setData(massageMap)
//            LogUtil.e("按摩器出去了")
        }
    }

    private fun showFunction() {
        //        if(massageMap.size <= 0) {
//            massageMap.put(
//                Constant.ITEM_MSG_HEAD_FOOT_INTENSITY_INC,
//                mutableListOf<Cmd>(
//                    Cmd(
//                        CmdUtil.MASSAGE,
//                        CmdKey.MSG_HEAD_INTENSITY_INC
//                    ),
//                    Cmd(
//                        CmdUtil.MASSAGE,
//                        CmdKey.MSG_FOOT_INTENSITY_INC
//                    )
//                )
//            )
//        massageMap.put(
//            Constant.ITEM_MSG_HEAD_FOOT_INTENSITY_DEC,
//            mutableListOf<Cmd>(
//                Cmd(
//                    CmdUtil.MASSAGE,
//                    CmdKey.MSG_HEAD_INTENSITY_DEC
//                ),
//                Cmd(
//                    CmdUtil.MASSAGE,
//                    CmdKey.MSG_FOOT_INTENSITY_DEC
//                )
//            )
//        )
//
//        massageMap.put(
//            Constant.ITEM_MSG_HEAD_FOOT_BOTH_INTENSITY,
//            mutableListOf<Cmd>(
//                Cmd(
//                    CmdUtil.MASSAGE,
//                    CmdKey.MSG_HEAD_FOOT_BOTH_INTENSITY_INC
//                ),
//                Cmd(
//                    CmdUtil.MASSAGE,
//                    CmdKey.MSG_HEAD_FOOT_BOTH_INTENSITY_DEC
//                )
//            )
//        )

//        massageMap.put(
//            Constant.ITEM_MSG_HEAD_FOOT_SPEED,
//            mutableListOf<Cmd>(
//                Cmd(
//                    CmdUtil.MASSAGE,
//                    CmdKey.MSG_HEAD_FOOT_SPEED_INC
//                ),
//                Cmd(
//                    CmdUtil.MASSAGE,
//                    CmdKey.MSG_HEAD_FOOT_SPEED_DEC
//                )
//            )
//        )


//        massageMap.put(
//            Constant.ITEM_MSG_STYLE,
//            mutableListOf<Cmd>(
//                Cmd(
//                    CmdUtil.MASSAGE,
//                    CmdKey.MSG_PULSE
//                ),
//                Cmd(
//                    CmdUtil.MASSAGE,
//                    CmdKey.MSG_MODE
//                ),
//                Cmd(
//                    CmdUtil.MASSAGE,
//                    CmdKey.MSG_CONSTANT
//                )
//            )
//        )

//        massageMap.put(
//            Constant.ITEM_MSG_MODE,
//            mutableListOf<Cmd>(
//                Cmd(
//                    CmdUtil.MASSAGE,
//                    CmdKey.MSG_MODE1
//                ),
//                Cmd(
//                    CmdUtil.MASSAGE,
//                    CmdKey.MSG_MODE2
//                ),
//                Cmd(
//                    CmdUtil.MASSAGE,
//                    CmdKey.MSG_MODE3
//                )
//            )
//        )

//        motorMap.put(
//            ITEM_UBL_ON_OFF,
//            mutableListOf<Cmd>(
//                Cmd(
//                    CmdUtil.MOTOR,
//                    UBL_ON_OFF
//                )
//            )
//        )
//
//        motorMap.put(
//            ITEM_UBL_OFF,
//            mutableListOf<Cmd>(
//                Cmd(
//                    CmdUtil.MOTOR,
//                    UBL_OFF
//                )
//            )
//        )


//        massageMap.put(
//            Constant.ITEM_MSG_MIN,
//            mutableListOf<Cmd>(
//                Cmd(
//                    CmdUtil.MASSAGE,
//                    CmdKey.MSG_10MIN
//                ),
//                Cmd(
//                    CmdUtil.MASSAGE,
//                    CmdKey.MSG_20MIN
//                ),
//                Cmd(
//                    CmdUtil.MASSAGE,
//                    CmdKey.MSG_30MIN
//                )
//            )
//        )

//        massageMap.put(
//            Constant.ITEM_MSG_HEAD_FOOT_ON_OFF,
//            mutableListOf<Cmd>(
//                Cmd(
//                    CmdUtil.MASSAGE,
//                    CmdKey.MSG_HEAD_ON_OFF
//                ),
//                Cmd(
//                    CmdUtil.MASSAGE,
//                    CmdKey.MSG_FOOT_ON_OFF
//                )
//            )
//        )

//        massageMap.put(
//            Constant.ITEM_MSG_HEAD_FOOT_BOTH_ON,
//            mutableListOf<Cmd>(
//                Cmd(
//                    CmdUtil.MASSAGE,
//                    CmdKey.MSG_HEAD_FOOT_BOTH_ON
//                )
//            )
//        )

//        massageMap.put(
//            Constant.ITEM_MSG_HEAD_FOOT_BOTH_OFF,
//            mutableListOf<Cmd>(
//                Cmd(
//                    CmdUtil.MASSAGE,
//                    CmdKey.MSG_HEAD_FOOT_BOTH_OFF
//                )
//            )
//        )


//            massageFragAdapter.setData(massageMap)
//        }
    }

}
